<?php 

require_once("Model/ModelsInclude.php");

require_once("Layout/header.php");

/*
 * Istanza generica per accesso ad attributi del model e definizioni specifiche
 * della pagina corrente.
 */
$c = Articolo::getInstance();
define("PAGE_NAME","Articoli");
define("PAGE_TITLE","Elenco degli articoli");
global $pagesLink, $pagesEditLink, $pagesRemoveLink, $pagesDuplicateLink;

/*
 * Connessione DB.
 */
$db = new DatabaseManager();
$db->Connect();

/*
 * Organizzazione delle pagine di tuple.
 */
$numPagine = ceil($c->getRecordsNum($db)/50);

$page = isset($_GET['pagina']) ? $_GET['pagina'] : 0;
if(!($page >= 0 && $page < $numPagine))
    $page = 0;

/*
 * Organizzazione ordinamento delle tuple.
 */
$ordinPagine = isset($_GET['ordinAttr']) ? $_GET['ordinAttr'] : STD_ID;
$ordinDir = isset($_GET['ordinDir']) ? $_GET['ordinDir'] : 1;

$orderBy = "";
if(in_array($ordinPagine, $c->attribNames))//se l'attributo richiesto è esistente
{
	$orderBy = $ordinPagine;
	if($ordinDir == '1')//se è 1 allora è ordine decrescente altrimenti è crescente
		$orderBy .= " DESC";
	else
		$orderBy .= " ASC";
}

/*
 * Raccolta delle tuple secondo le specifiche richieste.
 */
$objsList = $c->getListFromDB($db, $page*50, ($page+1)*50, $orderBy);

/*
 * Stampa dell'header della pagina
 */
printHeader(PAGE_NAME, PAGE_TITLE, $c);

/*
 * Box di help
 */
LayoutUtils::printPageListHelpBox();

/*
 * Box dell'ordinamento
 */
LayoutUtils::printPageListSortingBox($c, $pagesLink[PAGE_NAME],
		$ordinPagine, $ordinDir);

/*
 * Contenuto della pagina
 */
LayoutUtils::printListPage($db, $c, $objsList,
		$pagesLink[PAGE_NAME], $pagesEditLink[PAGE_NAME],
		$pagesRemoveLink[PAGE_NAME], $pagesDuplicateLink[PAGE_NAME],
		$ordinPagine, $ordinDir, $page, $numPagine);

include("Layout/footer.php");

?>
